The Global Positioning System (GPS) is a satellite-based location system. In the GPS, several satellites orbiting the earth provide signal codes that are detected by receivers. Other positioning systems, such as the Galileo system, operate in a similar manner. The receivers in such systems use the codes to lock onto the satellite signal. The receiver or user then measures the time of arrival of the satellite signal against an internal clock, which indicates a delay from the satellite. Such delay is determined for at least four different satellites. Those delays translate to distances. Because the distances to each of four satellites are known, and because the position of the satellites may be obtained from the signals transmitted by the satellites, the X, Y, and Z coordinates of the receiver/user may be calculated, as well as the receiver's clock error. This method is known as pseudoranging, and systems other than GPS use similar technology.
Weak signals present problems that make acquisition and tracking of GPS signals difficult. In particular, failure to accurately acquire and track weak GPS signals makes it difficult to obtain accurate delay measurements, since even a small error can translate to large inaccuracies in location.
One of the ways in which the delay between transmission of a satellite and reception by a receiver is obtained is by causing the receiver to identify and synchronize to a repetitive code of a particular satellite. To this end, the receiver generates a replica of the code of each satellite in repetitive pattern and then, for a particular satellite, tries to line up the internally generated code with the received code from the satellite. To “line up” the internally generated code, the internally generated code sequence must usually be delayed by some amount. The delay between the transmitted signal and a received signal causes delay in the received code signal having the relationship set forth below.Codesatl(t)=Coderec(t+Δl),  (1)where δl is a delay value, Codesatl is the code signal transmitted by the satellite, and Coderec is the receive code signal. By aligning internal codes of other satellites with corresponding internal codes, other delay values may be obtained. Thus, for three other satellites, delay values Δ2, Δ3, and Δ4 may be generated. Then, by obtaining the position information for those satellites (xj, yj, zj) for j={1, 2, 3, 4}, the equations that may be used to solve for the position of the receiver may be set up.
First, the distance between a satellite and the receiver in terms of delay may be expressed asDistance=Δj*C(speed of light).  (2)However, the measured delay does not provide an absolute delay value because the clock in the receiver is not necessarily synchronized to the satellites, which are synchronized together. So the actual distance between a satellite n and the receiver is the measured delay Δj, plus a receiver clock offset Toff, times the speed of light. Thus, the following equations can be set up(Δ1+Toff)*C=[(x1−xr)2+(y1−yr)2+(z1−zr)2]1/2  (3)(Δ2+Toff)*C=[(x2−xr)2+(y2−yr)2+(z2−zr)2]1/2  (4)(Δ3+Toff)*C=[(x3−xr)2+(y3−yr)2+(z3−zr)2]1/2  (5)(Δ4+Toff)*C=[(x4−xr)2+(y4−yr)2+(z4−zr)2]1/2  (δ)
The above four equations amount to four equations with four unknowns, which may then be solved for the receiver position xr, yr, zr, as well as the offset of the receiver clock Toff. It may readily be observed that because the speed of light is 286,000 miles per second, that even a small discrepancy in a delay measurement Δj can result in significant inaccuracy.
In the presence of weak signals, it can be difficult to get an accurate alignment of the internal code replica and received signal to get a precise delay number. However, the acquisition code sequence, known in the art as the C/A code, is 1023 bits and repeated periodically every 1 millisecond. Thus, by superimposing the internal code replica over the received code for multiple instances of the code, a correlation technique may be used to filter out noise present in the signal. As the number of 1 millisecond periods used for correlation increases, the ability of the receiver to acquire weaker signals increases.
The practical number of C/A sequences that may be used is hindered, however, by the fact that the C/A code is in fact superimposed over another signal, referred to as the data signal, which has a pulse width of 20 milliseconds. The data signal contains the location information for the satellite, among other things. However, before the GPS signal is acquired, the data signal in the GPS signal is unknown to the receiver, and appears as a pseudorandom signal that changes pseudo randomly between −1 and +1. Because the receiver does not know the data signal, the receiver does not know the effects of the data signal on the C/A sequences. Transitions in the data signal between +1 and −1 completely change the appearance of the C/A sequences. Moreover, although there are 20 repetitions of the C/A sequence for every data signal value, the receiver does not have a priori knowledge of when the transitions of the data signal occur.
Accordingly, the presence of the data signal makes it difficult to use multiple C/A sequences to achieve acquisition of the C/A code for weak GPS signals. In the prior art, methods have been used to overcome this difficulty. According to one method, two sets of ten adjacent C/A code sequences are correlated to the internal signal. One of the two sets is guaranteed not to have a data bit transition in it. Thus, the set of C/A code sequences with the higher correlation value, which is indicative of the lack of a bit transition, is used to acquire the C/A codes sequences and arrive at the delay value.
One shortfall of the above described method of using two sets of C/A code is that there is a practical limit on how a weak signal may be obtained using 10 C/A code sequences for correlation.
In addition, code acquisition using multiple C/A code sequences can be thwarted by Doppler shift in the frequency, which changes slightly the duration of the codes within the sequences. In particular, while the GSP signal is transmitted with a known carrier frequency (e.g. 1575 MHz), relative movement between the satellite and the receiver, as well as other things, can introduce a Doppler frequency shift between the signal as transmitted, and the signal received. The Doppler frequency shift adds to the difficulty of tracking the C/A code of the GPS signal.